home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / gnnln920.lha / inline-2.0 / diskfont.h < prev    next >
C/C++ Source or Header  |  1992-06-14  |  3KB  |  100 lines

  1. #ifndef _INLINE_DISKFONT_H
  2. #define _INLINE_DISKFONT_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct Library * DiskfontBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME DiskfontBase
  18. #endif
  19.  
  20. static __inline LONG 
  21. AvailFonts (BASE_PAR_DECL STRPTR buffer,long bufBytes,long flags)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct Library *a6 __asm("a6") = BASE_NAME;
  26.   register STRPTR a0 __asm("a0") = buffer;
  27.   register long d0 __asm("d0") = bufBytes;
  28.   register long d1 __asm("d1") = flags;
  29.   __asm __volatile ("jsr a6@(-0x24)"
  30.   : "=r" (_res)
  31.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  32.   : "a0","a1","d0","d1");
  33.   *(char *)a0 = *(char *)a0;
  34.   return _res;
  35. }
  36. static __inline void 
  37. DisposeFontContents (BASE_PAR_DECL struct FontContentsHeader *fontContentsHeader)
  38. {
  39.   BASE_EXT_DECL
  40.   register struct Library *a6 __asm("a6") = BASE_NAME;
  41.   register struct FontContentsHeader *a1 __asm("a1") = fontContentsHeader;
  42.   __asm __volatile ("jsr a6@(-0x30)"
  43.   : /* no output */
  44.   : "r" (a6), "r" (a1)
  45.   : "a0","a1","d0","d1");
  46.   *(char *)a1 = *(char *)a1;
  47. }
  48. static __inline struct FontContentsHeader *
  49. NewFontContents (BASE_PAR_DECL BPTR fontsLock,STRPTR fontName)
  50. {
  51.   BASE_EXT_DECL
  52.   register struct FontContentsHeader * _res  __asm("d0");
  53.   register struct Library *a6 __asm("a6") = BASE_NAME;
  54.   register BPTR a0 __asm("a0") = fontsLock;
  55.   register STRPTR a1 __asm("a1") = fontName;
  56.   __asm __volatile ("jsr a6@(-0x2a)"
  57.   : "=r" (_res)
  58.   : "r" (a6), "r" (a0), "r" (a1)
  59.   : "a0","a1","d0","d1");
  60.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  61.   return _res;
  62. }
  63. static __inline struct DiskFontHeader *
  64. NewScaledDiskFont (BASE_PAR_DECL struct TextFont *sourceFont,struct TextAttr *destTextAttr)
  65. {
  66.   BASE_EXT_DECL
  67.   register struct DiskFontHeader * _res  __asm("d0");
  68.   register struct Library *a6 __asm("a6") = BASE_NAME;
  69.   register struct TextFont *a0 __asm("a0") = sourceFont;
  70.   register struct TextAttr *a1 __asm("a1") = destTextAttr;
  71.   __asm __volatile ("jsr a6@(-0x3c)"
  72.   : "=r" (_res)
  73.   : "r" (a6), "r" (a0), "r" (a1)
  74.   : "a0","a1","d0","d1");
  75.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  76.   return _res;
  77. }
  78. static __inline struct TextFont *
  79. OpenDiskFont (BASE_PAR_DECL struct TextAttr *textAttr)
  80. {
  81.   BASE_EXT_DECL
  82.   register struct TextFont * _res  __asm("d0");
  83.   register struct Library *a6 __asm("a6") = BASE_NAME;
  84.   register struct TextAttr *a0 __asm("a0") = textAttr;
  85.   __asm __volatile ("jsr a6@(-0x1e)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (a0)
  88.   : "a0","a1","d0","d1");
  89.   *(char *)a0 = *(char *)a0;
  90.   return _res;
  91. }
  92. #undef BASE_EXT_DECL
  93. #undef BASE_PAR_DECL
  94. #undef BASE_PAR_DECL0
  95. #undef BASE_NAME
  96.  
  97. __END_DECLS
  98.  
  99. #endif /* _INLINE_DISKFONT_H */
  100.